/*
 * pruebaErrores.h
 *
 *  Created on: 13/10/2011
 *      Author: pablo
 */

#ifndef PRUEBAERRORES_H_
#define PRUEBAERRORES_H_

#include "ConfiguracionServidor/TipoError.h"

void pruebaAltasError() {
    std::cout << "----Pruebas Altas errores----" << std::endl;
    Configuracion c;
    TipoError* error = new TipoError();
    error->setNroError(1);
    error->setRuta("error1");
    if(c.agregarError(error))
    	std::cout << "ALTA OK" << std::endl;
    else
    	std::cout << "ALTA ERROR" << std::endl;

    TipoError* error2 = new TipoError();
    error2->setNroError(1);
    error2->setRuta("error2");
    if(c.agregarError(error2))
    	std::cout << "ALTA ERROR: elemento repetido" << std::endl;
    else
    	std::cout << "ALTA OK" << std::endl;
    std::cout << std::endl;
    std::cout << "----FIN Pruebas Altas errores----" << std::endl;
}

void pruebaRemoverError() {
    std::cout << "---- Prueba remover error ----" << std::endl;
    Configuracion conf;
    if(conf.removerError(1))
    	std::cout << "REMOVER ERROR" << std::endl;
    else
    	std::cout << "REMOVER OK" << std::endl;

    TipoError* error = new TipoError();
    error->setNroError(1);
    error->setRuta("error1");
    conf.agregarError(error);
    if(conf.removerError(1))
    	std::cout << "REMOVER OK" << std::endl;
    else
    	std::cout << "REMOVER ERROR" << std::endl;
    std::cout << "----FIN  Prueba remover error ----" << std::endl;
}

void pruebaRecuperacionListaErrores()
{
	std::cout << "-----PRUEBA getListaErrores--------" << std::endl;
    Configuracion c;
    TipoError *error1 = new TipoError();
    error1->setNroError(1);
    error1->setRuta("ruta1");
    TipoError *error2 = new TipoError();
    error2->setNroError(2);
    error2->setRuta("ruta2");
    c.agregarError(error1);
    c.agregarError(error2);
    std::list<TipoError> l = c.getTiposErrores();
    std::list<TipoError>::iterator it;
    for(it = l.begin();it != l.end();it++){
        if(it->getNroError() == 1){
            if(it->getRuta() == "ruta1")
                std::cout << "Recuperacion error 1 Ok" << std::endl;

            else
                std::cout << "Recuperacion error 1 Error" << std::endl;

        }else
            if(it->getNroError() == 2){
                if(it->getRuta() == "ruta2")
                    std::cout << "Recuperacion error 2 Ok" << std::endl;

                else
                    std::cout << "Recuperacion error 2 Error" << std::endl;

            }else{
                std::cout << "ERROR DE RECUPERACION DE LISTA" << std::endl;
            }
    }
    std::cout << "----- FIN PRUEBA getListaErrores--------" << std::endl;
}

void pruebaErrores() {
	std::cout << "-------- PRUEBA ERRORES --------" << std::endl;
    pruebaAltasError();
    std::cout << std::endl;
    pruebaRemoverError();
    std::cout << std::endl;
    pruebaRecuperacionListaErrores();
    std::cout << std::endl;
    std::cout << "-------- FIN PRUEBA ERRORES --------" << std::endl;
    std::cout << std::endl;
}



#endif /* PRUEBAERRORES_H_ */
